基于VC++.NET 的串行通信的機器人控制系統(tǒng)設(shè)計
2014/2/18 10:24:53
1.前言(Introdution)
隨著當(dāng)今科技的不斷發(fā)展,機器人應(yīng)用領(lǐng)域的不斷擴展,人們對機器人的控制越來越想方便、快捷。基于PC 的機器人控制系統(tǒng)極大的促進了機器人的遙操作技術(shù)?;赩C++.NET的機器人控制平臺的設(shè)計,提高了系統(tǒng)的人機交互性和可擴展性。
本文將 PC 機與單片機結(jié)合,綜合應(yīng)用了兩者的優(yōu)勢,互補了彼此的缺陷,設(shè)計了一套機器人控制系統(tǒng)。上位機(PC 機)主要采用VC++.NET 設(shè)計了可視化的機器人控制平臺,簡潔明了,控制快捷;下位機(單片機控制系統(tǒng))主要采用PIC 單片機和PSC(Parallax ServoController)電機控制器,采用模塊化遞階控制技術(shù)融合傳感器技術(shù),運用匯編語言,通過鍵盤控制,完成了機器人的各種行走功能,同時還通過液晶顯示芯片1602 來顯示機器人當(dāng)前的工作狀態(tài);本研究采用的試驗移動機器人是德普施科技有限公司的DRROB 系列高級機器人產(chǎn)品——六足機器人。
2.系統(tǒng)硬件設(shè)計(The design of system hardware)
2.1 系統(tǒng)硬件的總體設(shè)計:
基于前言部分所描述機器人控制系統(tǒng)功能,初步分析該系統(tǒng)由以下幾個模塊組成:單片機最小系統(tǒng)模塊(PIC 單片機為核心,擴展了一片EEPROM 芯片24LC16B),串行通信模塊,直流伺服電機驅(qū)動模塊,鍵盤控制模塊,液晶顯示模塊及傳感器檢測模塊等。列出部分主要模塊電路圖。其控制系統(tǒng)總體框圖如圖1 所示。
圖1 控制系統(tǒng)總體結(jié)構(gòu)
2.2 通信電路模塊:
采用 MAX232 實現(xiàn)電平轉(zhuǎn)換,其連接采用簡單的零調(diào)制三線經(jīng)濟型。其電路如圖2 所示。
圖2 通信電路
2.3 電機驅(qū)動電路模塊:
采用 PSC 電機控制器作為電機驅(qū)動模塊的硬件基礎(chǔ),此控制器采用數(shù)據(jù)分配器芯片一個、信號接收端口一個、復(fù)位按鈕一個、單刀雙擲開關(guān)一個,+5V 伺服電源入口一個。PSC電機控制器是一個1/16 線的數(shù)據(jù)分配器,通過串口通信將接收來的控制信息分成16 路,經(jīng)譯碼后可發(fā)送給16 個電機驅(qū)動器芯片,在這里我們使用其中12 個端口。六足機器人的基本動作是由12 個直流伺服電機協(xié)同動作完成,伺服電機采用減速裝置,旋轉(zhuǎn)電位計和H 橋?qū)崿F(xiàn)精確的位置半閉環(huán)控制。Serial(信息接收端口)與PIC 微控制器的P15 端口相連,接受控制信號。其電路如圖3 所示。
圖 3 電機驅(qū)動模塊
2.4 機器人紅外避障模塊:
采用了一個簡單但應(yīng)用普遍的電路。在該電路中采用了常用的紅外發(fā)射管D1 和接收管Q1,通過改變電阻R1 可以調(diào)節(jié)發(fā)射管的功率,通過測量D1 的電壓可以計算出機器人距離目標(biāo)或者障礙物的距離。其電路圖略。
2.5 液晶顯示模塊:
采用 1602 液晶顯示模塊,該模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160 個不同的點陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。此模塊的作用是可以顯示當(dāng)前的狀態(tài),實現(xiàn)機器人的人機交互顯示功能。其電路略。
3.系統(tǒng)軟件設(shè)計(The design of system software)
該系統(tǒng)的軟件設(shè)計分為兩個部分:上位機軟件和下位機軟件。上位機采用高級語言VC++.NET 來實現(xiàn),而下位機采用匯編語言來實現(xiàn)。
3.1 上位機軟件實現(xiàn)
在 WINDOWS 環(huán)境下,用戶不能直接對PC 的串行端口進行操作。Visual C++.NET 中,通過使用微軟公司提供的Microsoft Comm Control 控件(簡稱MSComm),可以方便地實現(xiàn)PC 與外部設(shè)備之間的串行通信,編程工作量相對較少。串行通信控件MSComm 有二種處理通信的工作方式:事件驅(qū)動方式和查詢工作方式。事件驅(qū)動方式是指:當(dāng)串行端口接收或發(fā)送完指定數(shù)量數(shù)據(jù)以及發(fā)生通信錯誤等情況時,MSComm 控件觸發(fā)OnComm 事件,作出相應(yīng)處理。查詢工作方式是指:通過查詢控件的某些屬性值(如InBufferCount 屬性)來作出進一步的處理。本設(shè)計實現(xiàn)采用事件驅(qū)動方式來發(fā)送接收數(shù)據(jù)。上位機程序主要包括初始化程序,控制代碼發(fā)送程序,機器人各種動作控制程序等。(代碼略)
3.2 下位機軟件實現(xiàn)
下位機程序主要由:主程序,機器人各動作的子程序,數(shù)據(jù)(控制字)傳送子程序,來自上位機的信號接受程序,延時程序等。其中最重要的就是機器人的各動作子程序(六足機器人涉及到12 個電機):使用PIC 單片機的擴展芯片EEPROM 數(shù)據(jù)存儲區(qū)存儲機器人每個動作對應(yīng)的各電機的輸入脈沖寬,建立一個數(shù)據(jù)指針ptrEEPROM,采用查表方式讀取,然后通過串行通信寫入PSC 電機控制器。控制系統(tǒng)主程序流程圖如圖4 所示。
圖 4 系統(tǒng)主程序流程圖
4.系統(tǒng)試驗機器人樣機及最終硬件實物圖(The robot’s sketch map for test and the final systemhardware photo)
該系統(tǒng)采用的機器人結(jié)構(gòu):以一曲柄搖桿機構(gòu)和連桿機構(gòu)作為腿部和六足,以12 個直流伺服電機作為驅(qū)動元件。利用德普施科技有限公司的六足機器人包搭接出的機器人。機器人機構(gòu)示意圖及設(shè)計最終的下位機硬件圖如圖5 所示。
a.六足機器人機構(gòu)示意圖 b.系統(tǒng)下位機的硬件圖
圖5 機器人最初和最終狀態(tài)圖
系統(tǒng)上位機控制界面如圖6 所示(通過鍵盤發(fā)送相應(yīng)控制狀態(tài)或點擊機器人動作演示中相應(yīng)的動作按鈕,使機器人動作,同時在接受數(shù)據(jù)窗口可以顯示出當(dāng)前機器人的運動狀態(tài))。
圖 6 系統(tǒng)上位機控制界面
5.結(jié)論(Conclusion)
本文完成所有的軟、硬件設(shè)計并對機器人樣機進行調(diào)試后,能夠使機器人很好地完成各種預(yù)設(shè)的動作,運動靈活、可靠。
由論文工作可得:控制系統(tǒng)的電機驅(qū)動電路采用一片數(shù)據(jù)分配器芯片,提高了控制的精確性;運用PIC 單片機技術(shù),并綜合紅外傳感技術(shù),增強了機器人研究領(lǐng)域的環(huán)境感知和人機交互功能;采用新型的VC++.NET 平臺編寫程序,突出了機器人研究領(lǐng)域的通信技術(shù)功能,相對VC++.6.0 更加提高了控制系統(tǒng)的擴展性,同時也更好地提高了工業(yè)控制的自動化水平。有很好的推廣價值。
本文作者創(chuàng)新點:控制系統(tǒng)的電機驅(qū)動電路采用一片數(shù)據(jù)分配器芯片,提高了控制的精確性;采用新型的VC++.NET 平臺編寫程序,相對VC++.6.0 更加提高了控制系統(tǒng)的擴展性,同時也更好地提高了工業(yè)控制的自動化水平。有很好的推廣價值。
隨著當(dāng)今科技的不斷發(fā)展,機器人應(yīng)用領(lǐng)域的不斷擴展,人們對機器人的控制越來越想方便、快捷。基于PC 的機器人控制系統(tǒng)極大的促進了機器人的遙操作技術(shù)?;赩C++.NET的機器人控制平臺的設(shè)計,提高了系統(tǒng)的人機交互性和可擴展性。
本文將 PC 機與單片機結(jié)合,綜合應(yīng)用了兩者的優(yōu)勢,互補了彼此的缺陷,設(shè)計了一套機器人控制系統(tǒng)。上位機(PC 機)主要采用VC++.NET 設(shè)計了可視化的機器人控制平臺,簡潔明了,控制快捷;下位機(單片機控制系統(tǒng))主要采用PIC 單片機和PSC(Parallax ServoController)電機控制器,采用模塊化遞階控制技術(shù)融合傳感器技術(shù),運用匯編語言,通過鍵盤控制,完成了機器人的各種行走功能,同時還通過液晶顯示芯片1602 來顯示機器人當(dāng)前的工作狀態(tài);本研究采用的試驗移動機器人是德普施科技有限公司的DRROB 系列高級機器人產(chǎn)品——六足機器人。
2.系統(tǒng)硬件設(shè)計(The design of system hardware)
2.1 系統(tǒng)硬件的總體設(shè)計:
基于前言部分所描述機器人控制系統(tǒng)功能,初步分析該系統(tǒng)由以下幾個模塊組成:單片機最小系統(tǒng)模塊(PIC 單片機為核心,擴展了一片EEPROM 芯片24LC16B),串行通信模塊,直流伺服電機驅(qū)動模塊,鍵盤控制模塊,液晶顯示模塊及傳感器檢測模塊等。列出部分主要模塊電路圖。其控制系統(tǒng)總體框圖如圖1 所示。
圖1 控制系統(tǒng)總體結(jié)構(gòu)
2.2 通信電路模塊:
采用 MAX232 實現(xiàn)電平轉(zhuǎn)換,其連接采用簡單的零調(diào)制三線經(jīng)濟型。其電路如圖2 所示。
圖2 通信電路
2.3 電機驅(qū)動電路模塊:
采用 PSC 電機控制器作為電機驅(qū)動模塊的硬件基礎(chǔ),此控制器采用數(shù)據(jù)分配器芯片一個、信號接收端口一個、復(fù)位按鈕一個、單刀雙擲開關(guān)一個,+5V 伺服電源入口一個。PSC電機控制器是一個1/16 線的數(shù)據(jù)分配器,通過串口通信將接收來的控制信息分成16 路,經(jīng)譯碼后可發(fā)送給16 個電機驅(qū)動器芯片,在這里我們使用其中12 個端口。六足機器人的基本動作是由12 個直流伺服電機協(xié)同動作完成,伺服電機采用減速裝置,旋轉(zhuǎn)電位計和H 橋?qū)崿F(xiàn)精確的位置半閉環(huán)控制。Serial(信息接收端口)與PIC 微控制器的P15 端口相連,接受控制信號。其電路如圖3 所示。
圖 3 電機驅(qū)動模塊
2.4 機器人紅外避障模塊:
采用了一個簡單但應(yīng)用普遍的電路。在該電路中采用了常用的紅外發(fā)射管D1 和接收管Q1,通過改變電阻R1 可以調(diào)節(jié)發(fā)射管的功率,通過測量D1 的電壓可以計算出機器人距離目標(biāo)或者障礙物的距離。其電路圖略。
2.5 液晶顯示模塊:
采用 1602 液晶顯示模塊,該模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160 個不同的點陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。此模塊的作用是可以顯示當(dāng)前的狀態(tài),實現(xiàn)機器人的人機交互顯示功能。其電路略。
3.系統(tǒng)軟件設(shè)計(The design of system software)
該系統(tǒng)的軟件設(shè)計分為兩個部分:上位機軟件和下位機軟件。上位機采用高級語言VC++.NET 來實現(xiàn),而下位機采用匯編語言來實現(xiàn)。
3.1 上位機軟件實現(xiàn)
在 WINDOWS 環(huán)境下,用戶不能直接對PC 的串行端口進行操作。Visual C++.NET 中,通過使用微軟公司提供的Microsoft Comm Control 控件(簡稱MSComm),可以方便地實現(xiàn)PC 與外部設(shè)備之間的串行通信,編程工作量相對較少。串行通信控件MSComm 有二種處理通信的工作方式:事件驅(qū)動方式和查詢工作方式。事件驅(qū)動方式是指:當(dāng)串行端口接收或發(fā)送完指定數(shù)量數(shù)據(jù)以及發(fā)生通信錯誤等情況時,MSComm 控件觸發(fā)OnComm 事件,作出相應(yīng)處理。查詢工作方式是指:通過查詢控件的某些屬性值(如InBufferCount 屬性)來作出進一步的處理。本設(shè)計實現(xiàn)采用事件驅(qū)動方式來發(fā)送接收數(shù)據(jù)。上位機程序主要包括初始化程序,控制代碼發(fā)送程序,機器人各種動作控制程序等。(代碼略)
3.2 下位機軟件實現(xiàn)
下位機程序主要由:主程序,機器人各動作的子程序,數(shù)據(jù)(控制字)傳送子程序,來自上位機的信號接受程序,延時程序等。其中最重要的就是機器人的各動作子程序(六足機器人涉及到12 個電機):使用PIC 單片機的擴展芯片EEPROM 數(shù)據(jù)存儲區(qū)存儲機器人每個動作對應(yīng)的各電機的輸入脈沖寬,建立一個數(shù)據(jù)指針ptrEEPROM,采用查表方式讀取,然后通過串行通信寫入PSC 電機控制器。控制系統(tǒng)主程序流程圖如圖4 所示。
圖 4 系統(tǒng)主程序流程圖
4.系統(tǒng)試驗機器人樣機及最終硬件實物圖(The robot’s sketch map for test and the final systemhardware photo)
該系統(tǒng)采用的機器人結(jié)構(gòu):以一曲柄搖桿機構(gòu)和連桿機構(gòu)作為腿部和六足,以12 個直流伺服電機作為驅(qū)動元件。利用德普施科技有限公司的六足機器人包搭接出的機器人。機器人機構(gòu)示意圖及設(shè)計最終的下位機硬件圖如圖5 所示。
a.六足機器人機構(gòu)示意圖 b.系統(tǒng)下位機的硬件圖
圖5 機器人最初和最終狀態(tài)圖
系統(tǒng)上位機控制界面如圖6 所示(通過鍵盤發(fā)送相應(yīng)控制狀態(tài)或點擊機器人動作演示中相應(yīng)的動作按鈕,使機器人動作,同時在接受數(shù)據(jù)窗口可以顯示出當(dāng)前機器人的運動狀態(tài))。
圖 6 系統(tǒng)上位機控制界面
5.結(jié)論(Conclusion)
本文完成所有的軟、硬件設(shè)計并對機器人樣機進行調(diào)試后,能夠使機器人很好地完成各種預(yù)設(shè)的動作,運動靈活、可靠。
由論文工作可得:控制系統(tǒng)的電機驅(qū)動電路采用一片數(shù)據(jù)分配器芯片,提高了控制的精確性;運用PIC 單片機技術(shù),并綜合紅外傳感技術(shù),增強了機器人研究領(lǐng)域的環(huán)境感知和人機交互功能;采用新型的VC++.NET 平臺編寫程序,突出了機器人研究領(lǐng)域的通信技術(shù)功能,相對VC++.6.0 更加提高了控制系統(tǒng)的擴展性,同時也更好地提高了工業(yè)控制的自動化水平。有很好的推廣價值。
本文作者創(chuàng)新點:控制系統(tǒng)的電機驅(qū)動電路采用一片數(shù)據(jù)分配器芯片,提高了控制的精確性;采用新型的VC++.NET 平臺編寫程序,相對VC++.6.0 更加提高了控制系統(tǒng)的擴展性,同時也更好地提高了工業(yè)控制的自動化水平。有很好的推廣價值。
提交
查看更多評論
其他資訊
工業(yè)機器人控制系統(tǒng)的開放體系結(jié)構(gòu)
工業(yè)機器人離線編程及無碰撞路徑規(guī)劃系統(tǒng)的開發(fā)研究
工業(yè)機器人手臂結(jié)構(gòu)的有限元分析與研究
工業(yè)機器人通用控制器研究開發(fā)
工業(yè)機器人網(wǎng)絡(luò)控制與編程